home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
System Booster
/
System Booster.iso
/
Archives
/
Replacements
/
cpdist_0_17.lha
/
cpdist-0.17
/
source
/
expand.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-05-28
|
747b
|
44 lines
/*
* RESIZE_BUFFER.C
*
* (c)Copyright 1992 by Tobias Ferber, All Rights Reserved
*/
#include <string.h>
#define MAXIMUM_BUFFERSIZE (64*1024)
int resize_buffer(buffer, oldsize, newsize)
unsigned char **buffer;
unsigned long oldsize, newsize;
{
char *newbuf= (char *)0L;
if(newsize <= MAXIMUM_BUFFERSIZE)
{
if( newbuf= (char *)malloc(newsize) )
{
if(*buffer)
{
if(oldsize >= newsize)
{
memcpy(newbuf, *buffer, newsize);
}
else /* oldsize < newsize */
{
memcpy(newbuf, *buffer, oldsize);
memset(&newbuf[oldsize], '\0', newsize-oldsize);
}
free(*buffer);
}
*buffer= newbuf;
}
}
return newbuf ? 1 : 0;
}